package org.swust.sysmonitorapp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.swust.sysmonitorapp.dto.HealthDataDto;
import org.swust.sysmonitorapp.entity.HealthData;
import org.swust.sysmonitorapp.entity.QHealthData;
import org.swust.sysmonitorapp.entity.SysUser;

import java.util.List;
import java.util.Map;

/**
 * 健康数据服务接口
 *
 * @since 2024-03-21
 */
public interface IHealthDataService extends IService<HealthData> {

    /**
     * 分页查询健康数据
     *
     * @param page 分页参数
     * @param query 查询参数
     * @return 分页数据
     */
    IPage<HealthDataDto> pageHealthData(Page page, QHealthData query);


    //实现获取最新的心率血氧数据，方便前端的预警操作
    HealthDataDto getLatestData(@Param("deviceId") String deviceId);
    
    /**
     * 获取用户指定时间段内的心率统计数据
     *
     * @param userId 用户ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 心率统计数据
     */
    Map<String, Object> getUserHeartRateStats(Long userId, String startTime, String endTime);
    
    /**
     * 获取用户指定时间段内的血氧统计数据
     *
     * @param userId 用户ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 血氧统计数据
     */
    Map<String, Object> getUserBloodOxygenStats(Long userId, String startTime, String endTime);

    @Override
    boolean save(HealthData entity);
} 